package com.spc.dao;

import com.github.pagehelper.Page;
import com.spc.pojo.Member;

import java.util.Date;
import java.util.Map;

public interface MemberDao {
    Member findByTelephone(String telephone);

    void add(Member member);

    Integer findMemberCountBeforeDate(String date);

    Integer findMemberCountByDate(String date);

    Integer findMemberCountAfterDate(String date);

    Integer findMemberTotalCount();

    // 根据查询条件,分页查询会员档案
    Page<Member> findMemberByQueryString(String queryString);

    // 根据会员id,删除该会员档案信息,id封装在integer数组中
    void deleteByIds(Integer[] deleteIds);

    // 根据会员id,查询该会员信息 (用于编辑用户时回显数据)
    Member findMemberById(Integer id);

    // 编辑指定会员信息
    void edit(Member member);

    // 根据查询条件,分页查询会员报告上传信息,返回参数为map,并将map封装到page集合中
    Page<Map> findMemberReportByQueryString(String queryString);

    //保存会员体检报告上传(将文件名称放入t_filenumber表中)
    void saveMemberUpload(Map map);

    // 删除体检报告(参数为报告名称的string数组)
    void deleteRepert(String[] deleteReportPdfs);

    // 根据新增会员的档案号,添加信息到t_filenumber
    void addFileNumber(String fileNumber);

    // 根据member中的filenumber值,删除t_filenumber对应的信息
    void deleteFileNumber(String fileNumber);

    // 查询每个月底为止所有会员预约数量
    Integer findMemberOrderCountByBeforeMonth(String month_31);

    // 查询每个月底为止所有会员预约数量且已到诊
    Integer findMemberOrderCountByBeforeMonthFinished(String month);

    // 根据本月日期,查询本月会员预约数量且已到诊
    Integer findMemberOrderOfMonth(String day);
}
